﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KPWeb.Class;
using KPWeb.Data;
using KPWeb.Function;

namespace KPWeb.Koordynator
{
    public partial class NarzedziaKoordynator : KPPage
    {
        private short RodzajNarzedzia
        {

            get
            {
                return short.Parse(ViewState["RodzajNarzedzia"].ToString());
            }
            set
            {
                ViewState["RodzajNarzedzia"] = value;

            }
        }
        private void daneOsoby(string pesel)  // daneOsoby(this.tPeselOsoba.Text)
        {

            Boolean flaga = true;
            foreach (vKP_UprawnieniaOsobaJednostka item in UprawnieniaLogowanie.GetListaUprawnienOsobaJednostka(pesel))
            {
                if (flaga)
                {
                    tOsobaOpis.Text = item.Tytul + " " + item.Nazwisko + " " + item.Imie + " " + item.Stanowisko + " " +
                    item.Pesel + " -- jednostka " + item.JednostkaKod + " -- firma " + item.FirmaKod +
                    " -- posiadane już UPRAWNIENIA:" + item.Uprawnienia;
                    flaga = false;
                }
                else
                    tOsobaOpis.Text = tOsobaOpis.Text + ", " + item.Uprawnienia;
            }
            tOsobaOpis.Visible = true;
            if (tOsobaOpis.Text.Trim() == "") tOsobaOpis.Text = Stale.uprBrakOsoby;
        }
        private void initListaUprawnienK()
        {
           
            try
            {
                this.TypUprawnienP.Items.Clear();
                this.TypUprawnienP.Items.Add(new ListItem() { Text = Stale.wybierzUprawnienia, Value = "-" });
                foreach (vLex_TypUprawnien item in UprawnieniaLogowanie.GetListaUprawnien())
                {
                    if (item.KodUprawnien != Stale.uprMoje && item.KodUprawnien != Stale.uprKoordynator && item.KodUprawnien != Stale.uprNieZatrudniony)
                          this.TypUprawnienP.Items.Add
                                 (new ListItem() { Text =  item.KodUprawnien + " - "+item.NazwaSkroconaUprawnien , Value = item.KodUprawnien });
                }
                TypUprawnienP.SelectedValue = Stale.listaWybierz;
            }
            catch (Exception ex)
            {
                throw new Exception("Brak połaczenia z serwerem /////login:" + " xxxx" + " " + ex.Message);
            }
        }

        private void komunikatError(int kod)//, int iT, int iID)
        {
            fError.Visible = true;
            switch (kod)
            {
                case -1: Error1.Visible = true;
                    break;
                case -2: Error2.Visible = true;
                    break;
                case -3: Error3.Visible = true;
            //        Error3.Text = Stale.errorJuzZarejestrowany + iT.ToString() + ", ID= " + iID.ToString();
                    break;
                case -4: Error4.Visible = true;
                    break;
                case -5: Error5.Visible = true;
                    break;
                case -6: Error6.Visible = true;
                    break;
                default: fError.Visible = false;
                    break;
            }
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            Error1.Visible = false;
            Error2.Visible = false;
            Error3.Visible = false;
            Error4.Visible = false;
            Error5.Visible = false;
            Error6.Visible = false;
            fError.Visible = false;
            fWizualizacja.Visible = false;
            lOsobaOpis.Visible = false;


            RodzajNarzedzia = short.Parse(Request["value"]);

            if (!IsPostBack)
            {

                switch (RodzajNarzedzia)
                {
                    case 1://Komunikaty
                        this.fKomunikaty.Visible = true;
                        mKomunikat.Text = "";
                        hKomunikat.Value = "";
                        this.tData.Text = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
                        break;
                    case 2://uprawnienia
                        this.fUprawnienia.Visible = true;
                        initListaUprawnienK();
                        break;
                    case 3://Kasowanie pytań lub odpowiedzi
                        this.fKasowanie.Visible = true;
                         dPytaniaOdpowiedzi.Items.Add(new ListItem() { Text = Stale.wybierzPytanieOdpowiedz, Value = "-" });
                
                         foreach (vKP_OdpowiedziPytaniaWiadomosci item3 in Model.NewsGetAll(-1, int.Parse(Current.FirmaID)))
                            {

                                dPytaniaOdpowiedzi.Items.Add(new ListItem()
                                {
                                    Text = String.Format("{0:yyyy-MM-dd}", item3.DateWhen)+" "+item3.typPytOdp + "(" + item3.ID.ToString() + ")" + " "
                                    + FunctionGlobal.UppercaseFirstWords(item3.Imie + " " + item3.Nazwisko) + " "
                                    + item3.HTMLMessage,
                                    Value = item3.ID.ToString()
                                });
                            }     
                        break;
                }
               
            }
            else
            {
                switch (RodzajNarzedzia)
                {
                    case 1://Komunikaty
                        mKomunikat.Text = Server.HtmlDecode(hKomunikat.Value);
                        break;
                }
              
            }
        }
        protected void bW_Click(object sender, EventArgs e)
        {
            DateTime dNieST;

            if (!DateTime.TryParse(this.tData.Text, out dNieST))
            {
                komunikatError(-1);
                return;
            }

           lKomunikatMenu.Text = Server.HtmlDecode("<div class='news'>" + " <font color='green'> <b>" + String.Format("{0:yyyy-MM-dd}",DateTime.Parse(this.tData.Text)) + "</b></font>"
               + "&nbsp" + (hKomunikat.Value) + "</div>");

            lKomunikatMenu.Visible = true;
            fWizualizacja.Visible = true;
        }

        protected void tZapisz_Click(object sender, EventArgs e)
        {
            if (Model.InsertUpdateKomunikat(DateTime.Parse(tData.Text), Server.HtmlDecode(hKomunikat.Value),
                int.Parse(Current.OsobaID), 0, int.Parse(Current.FirmaID)) == 1)
            {
                komunikatError(-1);
                return;
            }
               
               lKomunikatMenu.Text = "";
               Server.Transfer("~/Default.aspx");
        }

      

        protected void dodajUprawnienia_Click(object sender, EventArgs e)
        {
            lOsobaOpis.Visible = true;
            if (TypUprawnienP.SelectedValue == Stale.listaWybierz)
            {
                komunikatError(-2);
                return;
            }
            if (!FunctionGlobal.KontrolaPesel(this.tPeselOsoba.Text))
            {

                komunikatError(-3);
                return;
            }

       
            foreach (vKP_UprawnieniaOsobaJednostka item in UprawnieniaLogowanie.GetListaUprawnienOsobaJednostka(this.tPeselOsoba.Text))
            {
                if ( item.Uprawnienia==this.TypUprawnienP.SelectedValue)
                {
                    komunikatError(-4);
                    return; 
                }
        
            }
            Boolean flaga = false;
            foreach (vKP_UprawnieniaOsobaJednostka item in UprawnieniaLogowanie.GetListaUprawnienOsobaJednostka(this.tPeselOsoba.Text))
            {
                if (item.Uprawnienia == Stale.uprMoje)
                {
                    flaga = true;
                }

            }

            if (!flaga)
            {
                komunikatError(-5);
                return;
            }
            UprawnieniaLogowanie.InsertDodatkoweUprawnienia(this.tPeselOsoba.Text, this.TypUprawnienP.SelectedValue);
            daneOsoby(this.tPeselOsoba.Text);
        

        }
        protected void wyswietlOsobe_Click(object sender, EventArgs e)
        {
           // this.lblExtra.Text = "dynamic";
            lOsobaOpis.Visible = true;

            if (TypUprawnienP.SelectedValue == Stale.listaWybierz)
            {
                komunikatError(-2);
                return;
            }
            if (!FunctionGlobal.KontrolaPesel(this.tPeselOsoba.Text))
            {
                komunikatError(-3);
                return;
            }
            fWizualizacja.Visible = true;
            daneOsoby(this.tPeselOsoba.Text);
          
       }
        protected void bKasuj_click(object sender, EventArgs e)
        {
            if (dPytaniaOdpowiedzi.SelectedValue == Stale.listaWybierz)
            {
                komunikatError(-6);
                return;
            }
            
            int iTemp = Model.KasujKomunikatPytaniaOdpowiedzi(int.Parse(dPytaniaOdpowiedzi.SelectedValue), int.Parse(Current.OsobaID));
            if (iTemp < 0)
            {
                komunikatError(iTemp);
                return;
            }

            Server.Transfer("~/Default.aspx");


        }

    }
}